summaryrefslogtreecommitdiff
path: root/src/routes/posts/[slug]/+page.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/posts/[slug]/+page.ts')
-rw-r--r--src/routes/posts/[slug]/+page.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/routes/posts/[slug]/+page.ts b/src/routes/posts/[slug]/+page.ts
new file mode 100644
index 0000000..d0776db
--- /dev/null
+++ b/src/routes/posts/[slug]/+page.ts
@@ -0,0 +1,26 @@
+import { getPost, getPosts } from '$lib/utils/posts';
+import { error } from '@sveltejs/kit';
+import type { PageLoad } from './$types';
+
+export const prerender = true;
+
+// Generate all post routes at build time
+export function entries() {
+ const posts = getPosts();
+ return posts.map((post) => ({ slug: post.slug }));
+}
+
+export const load: PageLoad = async ({ params }) => {
+ const slug = params.slug;
+ const post = getPost(slug);
+
+ if (!post) {
+ error(404, `Post not found: ${slug}`);
+ }
+
+ return {
+ content: post.default,
+ metadata: post.metadata,
+ slug
+ };
+};